JS 2019

Web Development - জাভাস্ক্রিপ্ট (JavaScript) জাভাস্ক্রিপ্ট আপডেট ভার্সন (JS Update Version) |
304
304

ECMAScript 2019 (ES10) হলো জাভাস্ক্রিপ্টের একটি গুরুত্বপূর্ণ আপডেট যা ২০১৯ সালে প্রকাশিত হয়। ES10 পূর্ববর্তী সংস্করণগুলোর উপর ভিত্তি করে তৈরি এবং এতে বিভিন্ন নতুন ফিচার ও উন্নত বৈশিষ্ট্য যুক্ত করা হয়েছে, যা ডেভেলপারদের কোড লেখাকে আরও সহজ, কার্যকর এবং শক্তিশালী করে তোলে। ES10 এর মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে অ্যারে ম্যানিপুলেশন সহজ করা, অবজেক্ট ম্যানিপুলেশন উন্নত করা, স্ট্রিং ম্যানিপুলেশন সহজ করা, এবং প্রমিস ম্যানেজমেন্টে উন্নতি আনা।


ES10 এর প্রধান বৈশিষ্ট্যসমূহ

rray.prototype.flat() এবং Array.prototype.flatMap()

flat() মেথড

flat() মেথডটি অ্যারের নেস্টেড এলিমেন্টগুলোকে ফ্ল্যাট করে এক মাত্রার অ্যারে রিটার্ন করে। এটি বিভিন্ন স্তরের নেস্টিং হ্যান্ডেল করতে পারে।

উদাহরণ:
const nested = [1, [2, [3, 4]], 5];
const flattened = nested.flat(2);
console.log(flattened);  // আউটপুট: [1, 2, 3, 4, 5]

ব্যাখ্যা: এখানে, flat(2) ব্যবহার করে অ্যারের দুই স্তরের নেস্টিং ফ্ল্যাট করা হয়েছে।

flatMap() মেথড

flatMap() মেথডটি প্রথমে প্রতিটি উপাদানের উপর নির্দিষ্ট একটি ফাংশন প্রয়োগ করে এবং তারপর ফলাফলকে ফ্ল্যাট করে।

উদাহরণ:
const numbers = [1, 2, 3, 4];
const result = numbers.flatMap(num => [num, num * 2]);
console.log(result);  // আউটপুট: [1, 2, 2, 4, 3, 6, 4, 8]

ব্যাখ্যা: flatMap() প্রতিটি সংখ্যাকে [num, num * 2] অ্যারেতে রূপান্তর করে এবং এক মাত্রার অ্যারে তৈরি করে।


bject.fromEntries()

Object.fromEntries() মেথডটি একটি কী-ভ্যালু পেয়ার থেকে অবজেক্ট তৈরি করে। এটি Object.entries() এর বিপরীত কাজ করে।

উদাহরণ:
const entries = [['name', 'Alice'], ['age', 25], ['city', 'Dhaka']];
const person = Object.fromEntries(entries);
console.log(person);  // আউটপুট: { name: 'Alice', age: 25, city: 'Dhaka' }

ব্যাখ্যা: Object.fromEntries() ব্যবহার করে অ্যারে অফ অ্যারে থেকে অবজেক্ট তৈরি করা হয়েছে, যা ডেটা ম্যানিপুলেশনে সহায়ক।


tring.prototype.trimStart() এবং String.prototype.trimEnd()

trimStart() এবং trimEnd() মেথডগুলো স্ট্রিংয়ের শুরু বা শেষে স্পেস কেটে ফেলার জন্য ব্যবহৃত হয়। এগুলো পূর্বের trimLeft() এবং trimRight() এর সমতুল্য।

উদাহরণ:
const str = '  Hello World  ';

const trimmedStart = str.trimStart();
console.log(trimmedStart);  // আউটপুট: 'Hello World  '

const trimmedEnd = str.trimEnd();
console.log(trimmedEnd);    // আউটপুট: '  Hello World'

ব্যাখ্যা: trimStart() স্ট্রিংয়ের শুরু থেকে স্পেস কেটে ফেলে এবং trimEnd() স্ট্রিংয়ের শেষে স্পেস কেটে ফেলে।


ymbol.prototype.description

Symbol.prototype.description প্রপার্টিটি একটি সিম্বলের বর্ণনা (description) প্রদান করে। এটি সিম্বলগুলির ডিবাগিং এবং লগিংয়ে সহায়ক।

উদাহরণ:
const sym = Symbol('unique');
console.log(sym.description);  // আউটপুট: 'unique'

ব্যাখ্যা: description প্রপার্টিটি সিম্বল তৈরি করার সময় দেওয়া বর্ণনা প্রদান করে, যা ডিবাগিং এবং লগিংয়ে সহায়ক।


Optional Catch Binding

Optional Catch Binding এর মাধ্যমে catch ব্লকে error প্যারামিটার বাদ দেওয়া যায় যদি তা প্রয়োজন না হয়। এটি কোডকে আরও সংক্ষিপ্ত এবং পরিষ্কার করে তোলে।

উদাহরণ:
try {
    throw new Error('Something went wrong!');
} catch {
    console.log('An error occurred.');
}
/*
আউটপুট:
An error occurred.
*/

ব্যাখ্যা: এখানে, catch ব্লকে error প্যারামিটার ব্যবহার করা হয়নি কারণ তাতে প্রয়োজন ছিল না।


Function.prototype.toString() উন্নতি

ES10 এ Function.prototype.toString() মেথডটি এখন ফাংশনের সোর্স কোডকে আরও সঠিকভাবে রিটার্ন করে।

উদাহরণ:
function greet(name) {
    return `Hello, ${name}!`;
}

console.log(greet.toString());
/*
আউটপুট:
function greet(name) {
    return `Hello, ${name}!`;
}
*/

ব্যাখ্যা: ES10 এ toString() মেথডটি ফাংশনের সম্পূর্ণ সোর্স কোড প্রদান করে, যা ডিবাগিং এবং ডকুমেন্টেশনে সহায়ক।


ES10 এর অন্যান্য বৈশিষ্ট্যসমূহ

rray.prototype.sort() Stability

ES10 এ Array.prototype.sort() মেথডটি স্টেবিল করা হয়েছে, অর্থাৎ একই মানের উপাদানগুলির ক্রম অপরিবর্তিত থাকে। পূর্বের সংস্করণে এটি নিশ্চিত করা হয়নি।

উদাহরণ:
const items = [
    { name: 'John', age: 25 },
    { name: 'Alice', age: 25 },
    { name: 'Bob', age: 30 }
];

items.sort((a, b) => a.age - b.age);
console.log(items);
/*
আউটপুট:
[
    { name: 'John', age: 25 },
    { name: 'Alice', age: 25 },
    { name: 'Bob', age: 30 }
]
*/

ব্যাখ্যা: একই age মানের উপাদানগুলির ক্রম অপরিবর্তিত থাকে, যা কোডের পূর্বাভাসযোগ্যতা বাড়ায়।


SON.stringify() Improvements

ES10 এ JSON.stringify() মেথডের কিছু উন্নতি করা হয়েছে, যেমন সীমিত সংখ্যক স্পেসের জন্য ইন্টিজার প্রদান করা।

উদাহরণ:
const obj = { name: 'Alice', age: 25 };

const jsonString = JSON.stringify(obj, null, 2);
console.log(jsonString);
/*
আউটপুট:
{
  "name": "Alice",
  "age": 25
}
*/

ব্যাখ্যা: JSON.stringify() এর তৃতীয় প্যারামিটার হিসেবে স্পেসের সংখ্যা নির্ধারণ করা হয়েছে, যা JSON স্ট্রিংকে ফরম্যাটেড করে তোলে।


Well-Formed JSON.stringify()

ES10 এ JSON.stringify() এখন সুসঙ্গত স্ট্রিং তৈরি করে, যা ইউনিকোড এ্যাস্কেপসের মাধ্যমে করা হয়।

উদাহরণ:
const obj = { smile: '😊' };

const jsonString = JSON.stringify(obj);
console.log(jsonString);  // আউটপুট: {"smile":"\uD83D\uDE0A"}

ব্যাখ্যা: ইউনিকোড ক্যারেক্টারগুলোকে এ্যাস্কেপ করে সুসঙ্গত JSON স্ট্রিং তৈরি করা হয়েছে।


ES10 এর সুবিধাসমূহ

  • কোডের সংক্ষিপ্ততা এবং পাঠযোগ্যতা: নতুন মেথড এবং অপারেটরগুলো কোডকে আরও সংক্ষিপ্ত এবং সহজবোধ্য করে তোলে।
  • অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং উন্নতি: for-await-of এবং async/await এর মাধ্যমে অ্যাসিঙ্ক্রোনাস কোড লেখা সহজ এবং রিডেবল হয়।
  • অবজেক্ট এবং অ্যারের ম্যানিপুলেশন সহজ: Array.prototype.flat(), Array.prototype.flatMap(), Object.fromEntries(), এবং Object.getOwnPropertyDescriptors() মেথডগুলো ডেটা ম্যানিপুলেশনে আরও কার্যকরী করে তোলে।
  • স্ট্রিং ম্যানিপুলেশন উন্নতি: trimStart() এবং trimEnd() মেথডগুলো স্ট্রিংয়ের শুরু বা শেষে নির্দিষ্ট সংখ্যক ক্যারেক্টার যোগ করা সহজ করে।
  • রেগুলার এক্সপ্রেশন শক্তিশালী করা: লুকবিহাইন্ড অ্যাসারশনস, নেমড ক্যাপচার গ্রুপস, ডটঅল ফ্ল্যাগ, এবং ইউনিকোড প্রপার্টি এস্কেপস রেগুলার এক্সপ্রেশনকে আরও শক্তিশালী এবং নমনীয় করে তোলে।
  • কোডের রক্ষণাবেক্ষণ সহজ করা: ট্রেইলিং কমা ব্যবহার করে প্যারামিটার লিস্ট এবং কলগুলিকে আরও সহজে মেইনটেন করা যায়।
  • প্রমিস ম্যানেজমেন্ট উন্নত: Promise.prototype.finally() মেথডটি প্রমিসের শেষে কিছু কোড চালানো সহজ করে, যা কোডের রিডেবিলিটি ও মেইনটেনেবিলিটি বাড়ায়।
  • সিম্বলসের বর্ণনা প্রদান: Symbol.prototype.description প্রপার্টি ডিবাগিং এবং লগিংয়ে সহায়ক।
  • Sort Stability: অ্যারের সঠিক ও পূর্বাভাসযোগ্য সাজানোর জন্য স্টেবিল সোর্ট মেথড।
  • JSON.stringify() উন্নতি: সুসঙ্গত JSON স্ট্রিং তৈরি এবং ফরম্যাটিং সহজ করা।

সারাংশ

ECMAScript 2019 (ES10) জাভাস্ক্রিপ্টের ভাষাকে আরও শক্তিশালী এবং কার্যকর করে তোলে। অ্যারে ম্যানিপুলেশনের জন্য flat() এবং flatMap(), অবজেক্ট ম্যানিপুলেশনের জন্য Object.fromEntries(), স্ট্রিং ম্যানিপুলেশনের জন্য trimStart() এবং trimEnd(), এবং প্রমিস ম্যানেজমেন্টের জন্য Promise.prototype.finally() এর মতো ফিচারগুলো ডেভেলপারদের কোড লেখাকে আরও সহজ, সংক্ষিপ্ত এবং রিডেবল করে তোলে। এছাড়াও, রেগুলার এক্সপ্রেশন এবং সিম্বলসের উন্নতি ডেটা হ্যান্ডলিংকে আরও কার্যকরী করে তোলে।

এই নতুন বৈশিষ্ট্যগুলো শেখা এবং ব্যবহার করা ডেভেলপারদের কোডের গুণগত মান এবং কার্যকারিতা বৃদ্ধি করতে সহায়ক, যা বড় এবং জটিল প্রজেক্টগুলির ক্ষেত্রে বিশেষভাবে উপকারী।


অতিরিক্ত টিপস

  • নতুন মেথড অনুশীলন করুন: Array.prototype.flat(), Array.prototype.flatMap(), Object.fromEntries(), এবং Promise.prototype.finally() মেথডগুলো ব্যবহার করে বিভিন্ন উদাহরণ তৈরি করুন।
  • অ্যাসিঙ্ক্রোনাস কোড লেখা অনুশীলন করুন: for-await-of এবং async/await ব্যবহার করে অ্যাসিঙ্ক্রোনাস ফাংশনগুলো লিখে দেখুন এবং তাদের কার্যকারিতা বুঝুন।
  • অবজেক্ট ম্যানিপুলেশন অনুশীলন করুন: Object.entries(), Object.values(), এবং Object.getOwnPropertyDescriptors() মেথডগুলো ব্যবহার করে অবজেক্ট ম্যানিপুলেশন অনুশীলন করুন।
  • স্ট্রিং ম্যানিপুলেশন ব্যবহার করুন: trimStart() এবং trimEnd() মেথডগুলো স্ট্রিং ম্যানিপুলেশনে ব্যবহার করে বিভিন্ন উদাহরণ তৈরি করুন।
  • রেগুলার এক্সপ্রেশন শিখুন: রেগুলার এক্সপ্রেশন এর উন্নত বৈশিষ্ট্যগুলো ব্যবহার করে বিভিন্ন স্ট্রিং ম্যানিপুলেশন টাস্ক সমাধান করার চেষ্টা করুন।
  • ট্রেইলিং কমা ব্যবহার করুন: ফাংশনের প্যারামিটার লিস্ট এবং কলগুলিতে ট্রেইলিং কমা ব্যবহার করে কোডের রক্ষণাবেক্ষণ সহজ করুন।
  • ব্রাউজার সমর্থন পরীক্ষা করুন: আপনার টার্গেট ব্রাউজারগুলো ES10 এর নতুন ফিচারগুলো সমর্থন করে কিনা তা নিশ্চিত করুন।
  • ডকুমেন্টেশন পড়ুন: MDN Web Docs এর মতো রিসোর্স থেকে ES10 এর নতুন বৈশিষ্ট্যগুলোর বিস্তারিত জানুন এবং বিভিন্ন ব্যবহারিক উদাহরণ অনুসরণ করুন।

ES10 এর নতুন বৈশিষ্ট্যগুলোকে ভালোভাবে বুঝে এবং প্রয়োগ করে আপনি আপনার জাভাস্ক্রিপ্ট প্রোগ্রামিং দক্ষতাকে আরও উন্নত এবং কার্যকরী করতে পারবেন, যা আপনার কোডকে আরও নির্ভরযোগ্য এবং শক্তিশালী করে তুলবে।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion